package main
import "fmt"

//定义结构体，将各个属性统一放入结构体中管理
/* type Teacher struct{
	//变量名字大写外界可以访问此属性
	Name string
	Age int
	School string
}

func main(){
	//方式1：直接创建
	//创建老师结构体实例、对象、变量
	var t1 Teacher // var a int
	fmt.Println(t1) //{ 0 } 默认值为0
	t1.Name = "胖子大王"
	t1.Age = 22
	t1.School = "河南科技大学"
	fmt.Println(t1)  //{胖子大王 22 河南科技大学}
	fmt.Println(t1.Age + 3) // 25

	//方式2：
	var t Teacher = Teacher{"pzdw",23,"滨江学院"}
	fmt.Println(t) //{pzdw 23 滨江学院}

	//方式3：返回的是结构体的指针
	var a *Teacher = new(Teacher)
	//a是指针，a指向地址，给这个地址的指向的对象的字段赋值
	(*a).Name = "sky"
	(*a).Age = 23
	a.School = "农农"
	fmt.Println(*a) //{sky 23 农农}

	//方式4：返回的是结构体指针
	var b *Teacher = &Teacher{"Dasiy",28,"p大"}
	fmt.Println(*b) //{Dasiy 28 p大}
} */

//结构体的相互转化
//结构体是用户单独定义的类型，
//和其它类型进行转换时需要有完全相同的字段(名字、个数和类型)
/* type Student struct{
	Age int
}
type Person struct{
	Age int
}
type Stu Student
func main(){
	var s Student = Student{10}
	var p Person = Person{10}
	s = Student(p)
	fmt.Println(s) // {10}
	fmt.Println(p) // {10}
	var s1 Student = Student{23}
	var s2 Stu = Stu{23}
	s1 = Student(s2)
	fmt.Println(s1)
	fmt.Println(s2)
} */

func main(){
	var a string = "hello world"
	for i := 0;i < len(a);i++{
		fmt.Printf("%c\t",a[i])
	}
}